package br.com.sgc.entities.medico;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;

import javax.persistence.CascadeType;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.JoinColumn;
import javax.persistence.JoinTable;
import javax.persistence.ManyToMany;
import javax.persistence.OneToMany;
import javax.persistence.Table;

import br.com.sgc.entities.geral.DiaSemana;
import br.com.sgc.entities.rh.Funcionario;

@Entity
@Table(schema="medico")
public class Medico extends Funcionario implements Serializable{

	private static final long serialVersionUID = -113726081066525541L;
	
	private String crm;
	
	@OneToMany(cascade = CascadeType.ALL, mappedBy = "medico", fetch = FetchType.LAZY)
	private List<EspecialidadeMedico> especialidades = new ArrayList<EspecialidadeMedico>();
	
	@ManyToMany(fetch = FetchType.LAZY)
	@JoinTable(schema="medico",
			joinColumns = {@JoinColumn(name="medico_id")},inverseJoinColumns = {@JoinColumn(name="plano_saude_id")})
	private List<PlanoSaude> planosSaude = new ArrayList<PlanoSaude>();
	
	@OneToMany(cascade = CascadeType.ALL, mappedBy = "medico", fetch = FetchType.LAZY)
	private List<DiaSemana> diasAtendimento = new ArrayList<DiaSemana>();
	

	public String getCrm() {
		return crm;
	}

	public void setCrm(String crm) {
		this.crm = crm;
	}

	public List<EspecialidadeMedico> getEspecialidades() {
		return especialidades;
	}

	public void setEspecialidades(List<EspecialidadeMedico> especialidades) {
		this.especialidades = especialidades;
	}

	public List<PlanoSaude> getPlanosSaude() {
		return planosSaude;
	}

	public void setPlanosSaude(List<PlanoSaude> planosSaude) {
		this.planosSaude = planosSaude;
	}

	public List<DiaSemana> getDiasAtendimento() {
		return diasAtendimento;
	}

	public void setDiasAtendimento(List<DiaSemana> diasAtendimento) {
		this.diasAtendimento = diasAtendimento;
	}
	
}
